package com.osfw.system.mapper.manage;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.osfw.system.entity.manage.SysDept;

import java.util.List;

/**
 * 部门管理 数据层
 */
public interface SysDeptMapper extends BaseMapper<SysDept> {

    /**
     * 查询组织机构内设部门信息
     *
     * @param sysDept 组织机构内设部门信息ID
     * @return 组织机构内设部门信息
     */
    SysDept selectSysDeptById(SysDept sysDept);

    /**
     * 根据角色ID查询部门
     *
     * @param roleId 角色ID
     * @return 部门列表
     */
    List<String> selectRoleDeptTree(Long roleId);

    /**
     * 查询部门列表（带人数）
     *
     * @param dept 部门信息
     * @return 部门列表
     */
    List<SysDept> selectDeptTreeWithCount(SysDept dept);

    /**
     * 查询部门列表（直属下级部门）
     *
     * @param dept 部门信息
     * @return 部门列表
     */
    List<SysDept> selectImmediateChildrenDeptList(SysDept dept);

    /**
     * 查询部门列表（直属下级部门）
     *
     * @param dept 部门信息
     * @return 部门列表
     */
    List<SysDept> selectImmediateChildrenDeptListByUserId(SysDept dept);

}
